/*
 * Copyright © 2017 eqxiu.com 北京中网易企秀科技有限公司  All rights reserved.
 */

package cn.hermit.nio.http.server.rest.annotation;

import cn.hermit.nio.http.Http;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author JackGao 高建国
 * @description //TODO 设计说明
 * @date 29/5/2017
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Property {

    String ref() default "";

    Http.ParamType type() default Http.ParamType.STRING;

    Http.ParamRealType realType() default Http.ParamRealType.STRING;

    String format() default "";

    String title() default "";

    String description() default "";

    String _default() default "";

    int maximum() default Integer.MAX_VALUE;

    boolean exclusiveMaximum() default true;

    int minimum() default Integer.MIN_VALUE;

    boolean exclusiveMinimum() default false;

    int maxLength() default Integer.MAX_VALUE;

    int minLength() default Integer.MIN_VALUE;

    String pattern() default "";

    int maxItems() default Integer.MAX_VALUE;

    int minItems() default Integer.MIN_VALUE;

    boolean uniqueItems() default false;

    int maxProperties() default Integer.MAX_VALUE;

    int minProperties() default Integer.MIN_VALUE;

    String _enum() default "";

    boolean required() default true;

    int multipleOf() default 0;


}
